/*
 * Cliente.h
 *
 *  Created on: 28/05/2012
 *      Author: sebastian
 */

#ifndef CLIENTE_H_
#define CLIENTE_H_

#include "common_Socket.h"
#include <cstring>
#include "common_Thread.h"
#include "ColaDeEntrada.h"

#define LALA "sad"

class VentanaPrincipal;
class Respuesta;
class Consulta;

class Cliente : public Thread {
public:
	Cliente();
	void enviarConsulta(Consulta* c);
	std::string recibirRespuesta();
	virtual ~Cliente();
	void conectar();
	void desconectar();
	virtual void run();
	Respuesta* popRespuesta();
	void pushRespuesta(Respuesta* r);
	Consulta* popConsulta();
	void pushConsulta(Consulta* cons);
	void setVentana(VentanaPrincipal* ventana);
private:
	Cola<Consulta*> consultas;
	Cola<Respuesta*> respuestas;
	Socket* socket;
	VentanaPrincipal* ventana;
};

#endif /* CLIENTE_H_ */
